质量推广预告 - 新 Loom 预览版构建

The OpenJDK 质量小组 正在推广使用 OpenJDK 构建测试 FOSS 项目,以提高发布版本的整体质量。此预告是发送给相关项目的 定期通信 的一部分。要详细了解该计划以及如何加入,请查看 此处.

新的 Loom EA 构建改进了虚拟线程中的监视器(同步方法)

Loom 项目发布了 新的预览版构建(23-loom+4-102 - 2024/5/31)。它们具有改进的对象监视器实现,应该可以防止虚拟线程在以下情况下固定其载体线程

  • 当由于对象的关联监视器被另一个线程持有而阻塞进入同步方法/语句时
  • 当在同步方法中停放(例如,在进行套接字 I/O 时)时
  • 当在同步方法中调用 Object.wait

3 potential uses-cases

自上一个 Loom EA 构建以来,Object.wait/定时-wait 的更改是主要更改。

Loom 团队正在寻求帮助来测试这些更改,即使用已知使用虚拟线程的代码以及“高度同步”的库来试用这些构建。主要目标是评估可靠性和性能。目前,重点是功能性和可靠性。请注意,某些情况下的性能尚未完全与阻塞 j.u.concurrent 锁和条件对象相媲美。

与以前一样,可以使用 JFR 事件来识别剩余的固定、停放或阻塞情况,例如在类初始化程序中。系统属性 jdk.tracePinnedThreads(以前用于在线程被固定时打印堆栈跟踪)不再输出任何内容。

请通过电子邮件将反馈发送到 Loom 邮件列表(需要订阅)。

~